home *** CD-ROM | disk | FTP | other *** search
/ PD ROM 1 / PD ROM Volume I - Macintosh Software from BMUG (1988).iso / Stacks / Updates⁄New / TEXAS for BMUG / C progs / TEXAS XFCNs ƒ / HyperXCmd.h < prev    next >
Encoding:
C/C++ Source or Header  |  1987-11-24  |  4.1 KB  |  120 lines  |  [TEXT/KAHL]

  1. /*
  2.     HyperXCmd.h  Definitions for calling all standard 
  3.     HyperCard callback routines from C.
  4.     ©Apple Computer, Inc. 1987
  5.     All Rights Reserved.
  6.  
  7.     See CFlash.C for an example of how to include this module in your 
  8.     C program.
  9.     
  10.     Modified by ^z - 871122 - put in a ';' after "guts[32]", took
  11.     out all occurrences of "extern;", and turned declarations into
  12.     proper prototype form, changed "extended" into "double"....
  13. */
  14.  
  15.  
  16. typedef struct XCmdBlock {
  17.     short    paramCount;     
  18.     Handle  params[16];
  19.     Handle  returnValue;      
  20.     Boolean    passFlag; 
  21.       
  22.     char    *entryPoint;    /* to call back to HyperCard */
  23.     short    request;  
  24.     short    result;  
  25.     long    inArgs[8];
  26.     long    outArgs[4];
  27.    } XCmdBlock, *XCmdBlockPtr;
  28.    
  29. typedef struct Str31 {
  30.     char    guts[32];
  31.     } Str31, *Str31Ptr;
  32.  
  33.   /*result codes */
  34. #define    xresSucc         0
  35. #define    xresFail         1 
  36. #define    xresNotImp         2 
  37.   
  38.   /* request codes */
  39. #define    xreqSendCardMessage        1 
  40. #define    xreqEvalExpr            2 
  41. #define    xreqStringLength        3 
  42. #define    xreqStringMatch            4 
  43. #define xreqSendHCMessage        5
  44. #define    xreqZeroBytes             6 
  45. #define    xreqPasToZero            7 
  46. #define    xreqZeroToPas            8 
  47. #define    xreqStrToLong            9 
  48. #define    xreqStrToNum            10 
  49. #define    xreqStrToBool            11 
  50. #define    xreqStrToExt            12 
  51. #define    xreqLongToStr            13 
  52. #define    xreqNumToStr            14 
  53. #define    xreqNumToHex            15 
  54. #define    xreqBoolToStr            16 
  55. #define    xreqExtToStr            17 
  56. #define    xreqGetGlobal            18 
  57. #define    xreqSetGlobal            19 
  58. #define    xreqGetFieldByName        20 
  59. #define    xreqGetFieldByNum        21 
  60. #define    xreqGetFieldByID        22 
  61. #define    xreqSetFieldByName        23 
  62. #define    xreqSetFieldByNum        24 
  63. #define    xreqSetFieldByID        25 
  64. #define    xreqStringEqual           26 
  65. #define    xreqReturnToPas           27 
  66. #define    xreqScanToReturn          28 
  67. #define    xreqScanToZero            39   /* was suppose to be 29!  Oops! */
  68.  
  69.  
  70. /* Forward definitions of glue routines.  Main program 
  71.     must include XCmdGlue.inc.c.  See XCmdGlue.inc.c for 
  72.     documentation of each routine.  */
  73. typedef void (*MyProcPtr) ();
  74.  
  75. pascal void SendCardMessage(XCmdBlockPtr paramPtr, StringPtr msg);
  76. pascal Handle EvalExpr(XCmdBlockPtr paramPtr, StringPtr expr);
  77. pascal long StringLength(XCmdBlockPtr paramPtr, StringPtr strPtr);
  78. pascal Ptr StringMatch(XCmdBlockPtr paramPtr, StringPtr pattern,
  79.     Ptr target);
  80.     
  81. pascal void ZeroBytes(XCmdBlockPtr paramPtr, Ptr dstPtr, long longCount);
  82. pascal Handle PasToZero(XCmdBlockPtr paramPtr, StringPtr pasStr);
  83. pascal void ZeroToPas(XCmdBlockPtr paramPtr, char *zeroStr,
  84.     StringPtr pasStr);
  85. pascal long StrToLong(XCmdBlockPtr paramPtr,Str31 *strPtr);
  86. pascal long StrToNum(XCmdBlockPtr paramPtr, Str31 *str);
  87. pascal Boolean StrToBool(XCmdBlockPtr paramPtr, Str31 *str);
  88. pascal void StrToExt(XCmdBlockPtr paramPtr, Str31 *str, double *myext);
  89. pascal void LongToStr(XCmdBlockPtr paramPtr, long posNum, Str31 *mystr);
  90. pascal void NumToStr(XCmdBlockPtr paramPtr, long num, Str31 *mystr);
  91. pascal void NumToHex(XCmdBlockPtr paramPtr, long num, short nDigits,
  92.     Str31 *mystr);
  93. pascal void BoolToStr(XCmdBlockPtr paramPtr, Boolean bool, Str31 *mystr);
  94. pascal void ExtToStr(XCmdBlockPtr paramPtr, double *myext, Str31 *mystr);
  95. pascal Handle GetGlobal(XCmdBlockPtr paramPtr, StringPtr globName);
  96. pascal void SetGlobal(XCmdBlockPtr paramPtr, StringPtr globName,
  97.     Handle globValue);
  98. pascal Handle GetFieldByName(XCmdBlockPtr paramPtr, Boolean cardFieldFlag,
  99.     StringPtr fieldName);
  100. pascal Handle GetFieldByNum(XCmdBlockPtr paramPtr, Boolean cardFieldFlag,
  101.     short fieldNum);
  102. pascal Handle GetFieldByID(XCmdBlockPtr paramPtr,Boolean cardFieldFlag,
  103.     short fieldID);
  104. pascal void SetFieldByName(XCmdBlockPtr paramPtr, Boolean cardFieldFlag,
  105.     StringPtr fieldName, Handle fieldVal);
  106. pascal void SetFieldByNum(XCmdBlockPtr paramPtr, Boolean cardFieldFlag,
  107.     short fieldNum, Handle fieldVal);
  108. pascal void SetFieldByID(XCmdBlockPtr paramPtr, Boolean cardFieldFlag,
  109.     short fieldID, Handle fieldVal);
  110. pascal Boolean StringEqual(XCmdBlockPtr paramPtr, Str31 *str1,
  111.     Str31 *str2);
  112. pascal void ReturnToPas(XCmdBlockPtr paramPtr, Ptr zeroStr,
  113.     StringPtr pasStr);
  114. pascal void ScanToReturn(XCmdBlockPtr paramPtr, Ptr *scanHndl);
  115. pascal void ScanToZero(XCmdBlockPtr paramPtr, Ptr *scanHndl);
  116.  
  117.  
  118.  
  119.  
  120.